'use strict';
(function(){
  var roundData = [
  {
    id:'1',
    descOne : '我对世界总是充满了好奇',
    descTwo : '我认为我的生活非常有趣',
    descThree : ['在任何情形下，我都能找到乐趣','我对各式各样的活动都感到兴奋'],
    name:'好奇心',shortname:'好奇心',

    desc:'你对一切都充满了好奇，对新事物有浓厚的兴趣，觉得身边的一切事物都是吸引人的。你乐于探索和发现，经常提出一些问题。'
  },
  {
    id:'2',
    descOne : '我愿意学习新事物',
    descTwo : '学习新事物让我感到兴奋',
    descThree : ['我常常阅读','每一天我都期盼着学习和成长的机会'],
    name:'爱学习',shortname:'爱学习',

    desc:'你喜欢学习新事物，无论是在课堂上还是生活中。你喜欢一切让你有机会学习的地方，比如学校、书籍、博物馆等。'
  },
  {
    id:'3',
    descOne : '我的朋友认为我能客观地看待事物',
    descTwo : '我具有一定的批判性思维',
    descThree : ['只有掌握了所有信息以后，我才会做出决定','我总会权衡利弊 '],
    name:'头脑开明（判断力，开放性）',shortname:'头脑开明',

    desc:'通过全方位的信息来思考和检验事物是你的重要特性。只有可靠的证据才能让你得出结论，你也能灵活地改变自己的想法。'
  },
  {
    id:'4',
    descOne : '朋友们认为我有各种各样的新奇想法',
    descTwo : '我喜欢想一些新的方法去解决问题',
    descThree : ['当别人告诉我应该怎么做一件事时，我会主动想出可以取得相同结果的其他方法','我的想象力比我的大多数朋友丰富'],
    name:'创造力',shortname:'创造力',

    desc:'思考做事的新方法是你的一个重要特质哦！如果能想到更好地方法，你不会满足于用传统的方式完成事情。'
  },
  {
    id:'5',
    descOne : '我一向能与刚认识的朋友融洽相处',
    descTwo : '我善于体会别人的感受',
    descThree : ['我有能力令其他人对一些事物产生兴趣','我总是知道说什么话可以让别人感觉更舒服'],
    name:'社会智商（情绪智商，同理心）',shortname:'社会智商',

    desc:'你对于他人的情绪和行为有准确的认识，你知道如何融入当前的环境，如何使他人觉得舒服。'
  },
  {
    id:'6',
    descOne : '别人觉得我是一个聪明的人',
    descTwo : '不管发生什么，我总能清楚地知道什么是最重要的',
    descThree : ['我几乎没有因为给朋友提供了错误意见而导致他（她）犯错','别人喜欢来征询我的建议'],
    name:'洞察力（智慧）',shortname:'洞察力',

    desc:'可能你自己还没有发现，但你身边的人会认为你是一个聪明的人，也愿意在遇到事请的时候听取你的建议。你对于这个世界有着自己的理解，这对你自己和身边的人都是有意义的。'
  },
  {
    id:'7',
    descOne : '我总能直面自己的恐惧',
    descTwo : '我是一个勇敢的人',
    descThree : ['我支持自己坚信的事，即使会产生负面的结果','别人还在侃侃而谈时，我已经付诸行动了'],
    name:'勇敢（勇气）',shortname:'勇敢',

    desc:'你是一个勇敢的人，不会因为威胁、挑战、困难或疼痛而退缩。你有着坚定的信念，即使有人反对也坚定地支持你认为正确的事物 。'
  },
  {
    id:'8',
    descOne : '我不轻言放弃',
    descTwo : '一旦决定做什么事情，我就会坚持下去',
    descThree : ['即使会遇到阻碍，我也要把事情完成','就算某些事我不喜欢做，我还是会因需要把它们完成'],
    name:'毅力（持久力）',shortname:'毅力',

    desc:'你做事有始有终，不管是什么都会努力完成。你做事时不会轻易分心，也愿意克服艰难险阻。'
  },
  {
    id:'9',
    descOne : '我一向遵守承诺',
    descTwo : '别人相信我能帮他们保守秘密',
    descThree : ['即使会造成伤害，我也会说出真相','不曾夸大过自己，我为此而骄傲'],
    name:'正直（可靠，诚实）',shortname:'正直',

    desc:'你是一个诚实正直的人，不仅仅表现在不说谎，也会对自己的感觉和行为负责，是一个真正不存在虚假的人。'
  },
  {
    id:'10',
    descOne : '我享受善待他人的感觉',
    descTwo : '能为朋友做些小事让我感到很享受',
    descThree : ['就算别人不提出，我也会主动帮忙','我为他人的好运而兴奋，就像自己获得好运一样'],
    name:'善良（慷慨，关怀，同情，无私的爱）',shortname:'善良',

    desc:'你对人慷慨善良，即使是不太熟悉的人你也愿意尽可能地帮一些忙。'
  },
  {
    id:'11',
    descOne : '我总能感受到自己生命中有爱存在',
    descTwo : '和他人分享我的感受是一件容易的事',
    descThree : ['不管我的家人和好友做了什么，都不能阻止我对他们的爱','在我的邻居、同事或同学中，有我真正关心的人'],
    name:'爱与被爱',shortname:'爱与被爱',

    desc:'你非常珍爱与他人的亲密关系，有能力与他人建立爱的联结，特别是那些能够与你相互分享情感互相照顾照顾的人，你也愿意亲近那些对你亲密的人。'
  },
  {
    id:'12',
    descOne : '为了集体的利益，我愿意牺牲个人利益',
    descTwo : '维护团体内的和睦对我来说很重要',
    descThree : ['即使我的团队没有采纳我的想法,我仍然愿意继续在这个团队中工作','在团队中工作可以令我发挥出最佳状态'],
    name:'团队协作（社会责任，忠诚，公民意识）',shortname:'团队协作',

    desc:'你具有出色的团队意识，你知道如何融入一个团队，在团队中愿意分享，贡献自己的力量，对集体忠诚、乐于奉献'
  },
  {
    id:'13',
    descOne : '我极其坚持正义和公平的原则',
    descTwo : '我公平地对待所有人，不管他们是什么身份',
    descThree : ['即使不喜欢一个人，我也会公平地对待他（她）','我相信聆听每个人的意见是值得的'],
    name:'公正',shortname:'公正',

    desc:'公平地对待所有人是你的重要原则。你公平地给予所有人机会，不会允许自己的个人感受影响对他人的决定。'
  },
  {
    id:'14',
    descOne : '作为一个领导者，我一视同仁',
    descTwo : '我非常擅长策划集体活动',
    descThree : ['即使我十分擅长做某些事，我还是会给其他人机会去做','作为一个团体领导，我尽量让每一个成员快乐'],
    name:'领导力',shortname:'领导力',

    desc:'你有着非凡的领导才能，善于推动和鼓励团队完成任务并让团队中的所有成员体验到归属感，维持良好的集体关系。你也有不错的活动组织能力。'
  },
  {
    id:'15',
    descOne : '我会控制自己的情绪',
    descTwo : '就算美食当前，我也不会吃过量',
    descThree : ['我从不想要长远来看有害的东西，即使他们在短期内让我感觉不错','无论在办公室、学校或家中，我总是在限期之前完成各种任务'],
    name:'自律（自控）',shortname:'自律',

    desc:'你是一个自律的人，你的自我意识管理着自己的感受和行为，对于自己的欲望和情绪也有不错的控制。'
  },
  {
    id:'16',
    descOne : '我总是谨慎地做出决定',
    descTwo : '行动前，我总是先考虑可能出现的结果',
    descThree : ['我总是思考以后再讲话','我总是避免参加会对身体造成伤害的活动'],
    name:'谨慎',shortname:'谨慎',

    desc:'你非常细心，总是能做出谨慎的选择，不会冒不当的风险，不说也不会做让自己可能后悔的事。'
  },
  {
    id:'17',
    descOne : '我非常喜欢各种形式的艺术',
    descTwo : '看到美好的事物时，总能触动我内心深处的情愫',
    descThree : ['对我来说，生活在充满美的世界中是很重要的','我能看到被别人忽视的美好事物'],
    name:'欣赏美丽和卓越（敬畏，赞叹，上进）',shortname:'欣赏美丽和卓越',

    desc:'无论是自然、艺术、数字、科学还是每天的经历，你善于从生活的方方面面发现和欣赏美。'
  },
  {
    id:'18',
    descOne : '我总是向关心帮助我的人表达感谢',
    descTwo : '我对生命中所得到的一切充满感激',
    descThree : ['如果收到礼物，我总是要让送礼物的人知道我很喜欢','我竭尽所能去答谢那些对我好的人'],
    name:'感恩（知道并感谢发生的好事情；多多表达谢意）',shortname:'感恩',

    desc:'你能发现身边发生的好事但你从不认为它们理所应当。您一定能发现你是一个感恩的人因为你总是在第一时间表达你的感激。'
  },
  {
    id:'19',
    descOne : '我总是对事物抱着乐观的态度',
    descTwo : '即使面对挑战，我也总对将来充满希望',
    descThree : ['当别人看到事物消极的一面时，我总能乐观地发现它积极的一面','如果得到不好的成绩或评价，我会专注于下次机会，并计划做的更好'],
    name:'希望（对未来乐观）',shortname:'希望',

    desc:'你对未来有最好的展望，并愿意为之付出努力。你相信未来是自己能够掌控的。'
  },
  {
    id:'20',
    descOne : '我注重精神生活',
    descTwo : '我相信每个人都有一个生存目的',
    descThree : ['我相信一种全宇宙的力量，比如神','我的生命有一个使命'],
    name:'精神信仰（虔诚，守信，有追求）',shortname:'精神信仰',

    desc:'你和对于更高的追求、生命的意义有着坚定而长久的信念，这种信念规范着行为并让你觉得舒适。'
  },
  {
    id:'21',
    descOne : '我以谦逊的态度对待发生在自己身上的好事',
    descTwo : '我不喜欢在人群中突出自己',
    descThree : ['当所有赞赏都只给我一个人时，我感到很不自在','我很少刻意引人注目'],
    name:'谦虚/谦逊',shortname:'谦虚/谦逊',

    desc:'你不愿成为聚光灯的焦点，你更喜欢用行动说明一切。你也不会自命不凡，不爱炫耀自夸，身边的人会被你的这种谦和感染。'
  },
  {
    id:'22',
    descOne : '大多数人认为和我在一起很有趣',
    descTwo : '不论在任何情形下，我都尝试寻找乐趣',
    descThree : ['我从不让沮丧的境遇带走我的幽默感','我更相信人生是游乐场而不是战场'],
    name:'幽默',shortname:'幽默',

    desc:'你很爱笑，给周围人带来快乐和笑容对你来说很重要，你喜欢看事物好的一面。'
  },
  {
    id:'23',
    descOne : '人们形容我为一个热情洋溢的人',
    descTwo : '我热爱自己所做的事情',
    descThree : ['早晨醒来，我会为了新一天中存在的无限可能性而兴奋','我会迫不及待地开始一项新的计划'],
    name:'有活力（热情积极，有魄力，有精力）',shortname:'有活力',

    desc:'无论做什么事，你总是兴奋而有活力的，你喜欢使生活充满激情和能量，敢于冒险和挑战。'
  },
  {
    id:'24',
    descOne : '我很少怀有怨恨',
    descTwo : '当别人待我不好时，我尝试以谅解来回应',
    descThree : ['我不想看到任何人受苦，哪怕是我的敌人','对我来说，过去的事情就让它过去了'],
    name:'宽恕和仁慈',shortname:'宽恕和仁慈',
    desc:'你宽恕伤害过你的人，愿意给他们第二次机会，你的原则是仁慈与宽恕。'
  }
];
  window.roundData = roundData;
  //这三个都是roundData的全部或者部分copy
  var roundOneCopy = null;
  var roundTwoCopy = [];
  var roundThreeCopy = [];
  var roundResult = [];

  var userSelectResult = {
    qList : [],
    uSelect: [],
    sortedSelect :[]
  }

  //记录回合阶段
  var nowPhase = 0;

  function selectStartMember(arr, shuffle, n ){
    var tempArr = [];

    if(shuffle){
      for(var i = 0; i < n; i ++){
        var r = _.random(0, arr.length-1);
        tempArr.push(arr.splice(r,1)[0]);
      }
    }else{
      tempArr = arr.splice(0,4);
    }

    return tempArr;
  }



  function generateRoundOneItem(){
    if(roundOneCopy === null){
      roundOneCopy = _.clone(roundData);
    }

    var temp = selectStartMember(roundOneCopy, true, 4);

    userSelectResult.qList.push(_.pluck(temp, 'id'));

    return _.map(temp, function(oneRoundData){
      return {
        results: oneRoundData.id,
        caption: oneRoundData.descOne
      }
    });
  }
  function generateRoundTwoItem(){
    var temp = selectStartMember(roundTwoCopy, true, 4);

    userSelectResult.qList.push(_.pluck(temp, 'id'));

    return _.map(temp, function(oneRoundData){
      return {
        results: oneRoundData.id,
        caption: oneRoundData.descTwo
      }
    });
  }

  var tempRoundThreeData = null;
  function generateRoundThreeItem(){
    if(tempRoundThreeData === null){
      tempRoundThreeData = [];
      var temp = _.shuffle(roundThreeCopy);
      _.each(temp, function(oneRoundData){
        tempRoundThreeData.push({
          results: oneRoundData.id,
          caption: oneRoundData.descThree[0]
        });
      });
      _.each(temp, function(oneRoundData){
        tempRoundThreeData.push({
          results: oneRoundData.id,
          caption: oneRoundData.descThree[1]
        });
      });
    }

    userSelectResult.qList.push(_.pluck(tempRoundThreeData, 'id'));
    return selectStartMember(tempRoundThreeData, false, 4);
  }

  window.roundDataUtil = {
    //通过qid,生成qid对应题目的题目
    generateData : function(qid){
      if(qid <= 6){
        nowPhase = 1;
        //获得第一个回合的数据
        return generateRoundOneItem();
      }else if(qid <= 9){
        nowPhase = 2;
        //获得第二个回合的数据
        return generateRoundTwoItem();
      }else{
        nowPhase = 3;
        //获得第三个回合的数据
        return generateRoundThreeItem();
      }
    },
    selectItem: function(qid, selectResult){
      var selectItem = _.find(roundData, function(oneData){
        return JSON.parse(oneData.id) === JSON.parse(selectResult);
      });
      if(nowPhase === 1){
        roundTwoCopy.push(selectItem);
      }else if(nowPhase === 2){
        roundThreeCopy.push(selectItem);
      }else{
        roundResult.push(selectItem);
      }
    },
    selectItemBatch:function(qid,selectResultArr){
      var that = this;
      _.each(selectResultArr, function(oneSelectResult){
        that.selectItem(qid, oneSelectResult);
      });

      userSelectResult.uSelect.push(selectResultArr);
    },
    getRouondResult: function(){
      return _.uniq(_.sortBy(roundResult, function(oneData){return JSON.parse(oneData.id)}));
    },
    getUserSelectResult:function(){
      //对结果进行排序
      var presort= _.countBy(roundResult,function(one){
        return one.id;
      });
      var presortArr = _.pairs(presort);
      var sortedArrDesc = _.sortBy(presortArr,function(one){
        return -one[1];
      });
      userSelectResult.sortedSelect = _.map(sortedArrDesc,function(one){
        return one[0];
      });

      return userSelectResult;
    }
  }


var questionCaption = '请在以下四句描述中选择比较符合你的<span class="questionCaption">两项</span>：';
window.yoparentData = {
  'id':7,
  'cate_id': '1',
  'title': '儿童性格优势测试',
  'imgSrc': 'http://static.winnovator.cn/scale/0007/face.jpg?t=' + Math.random(),
  'imgWidth': 750,'imgHeight': 500,
  'description': '积极心理学之父马丁·塞利格曼教授认为，每个孩子都有自己的性格优势，如果能在每天的生活中运用与生俱来的一系列优势，将会最大限度地促进成长与发展。下面的12题将帮助你最科学的了解你和你孩子的性格优势。(建议测试年龄：5岁以上)<br / ><div style="text-align: center"><img src="http://static.winnovator.cn/scale/0007/expert.png?t=2"  style="width: 100%;height: auto; margin-top: 25px;"/></div> ',
  'isCheckResult':false,
  'showCheckResult':false,
  'share': {
    'title': '儿童性格优势测试',
    'description':''
  },
  'questions': [
    {
      'id': '1',
      'caption': questionCaption,
      'img_src': '',
      'imgWidth': 750,'imgHeight': 200,
      'layout': { 'cols': '1','img': 'left'},
      'answers': [
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0}
      ]
    },
    {
      'id': '2',
      'caption': questionCaption,
      'img_src': '',
      'imgWidth': 750,'imgHeight': 200,
      'layout': { 'cols': '1','img': 'left'},
      'answers': [
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0}
      ]
    },
    {
      'id': '3',
      'caption': questionCaption,
      'img_src': '',
      'imgWidth': 750,'imgHeight': 200,
      'layout': { 'cols': '1','img': 'left'},
      'answers': [
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0}
      ]
    },
    {
      'id': '4',
      'caption': questionCaption,
      'img_src': '',
      'imgWidth': 750,'imgHeight': 200,
      'layout': { 'cols': '1','img': 'left'},
      'answers': [
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0}
      ]
    },
    {
      'id': '5',
      'caption': questionCaption,
      'img_src': '',
      'imgWidth': 750,'imgHeight': 200,
      'layout': { 'cols': '1','img': 'left'},
      'answers': [
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0}
      ]
    },
    {
      'id': '6',
      'caption': questionCaption,
      'img_src': '',
      'imgWidth': 750,'imgHeight': 200,
      'layout': { 'cols': '1','img': 'left'},
      'answers': [
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0}
      ]
    },
    {
      'id': '7',
      'caption': questionCaption,
      'img_src': '',
      'imgWidth': 750,'imgHeight': 200,
      'layout': { 'cols': '1','img': 'left'},
      'answers': [
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0}
      ]
    },
    {
      'id': '8',
      'caption': questionCaption,
      'img_src': '',
      'imgWidth': 750,'imgHeight': 200,
      'layout': { 'cols': '1','img': 'left'},
      'answers': [
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0}
      ]
    },
    {
      'id': '9',
      'caption': questionCaption,
      'img_src': '',
      'imgWidth': 750,'imgHeight': 200,
      'layout': { 'cols': '1','img': 'left'},
      'answers': [
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0}
      ]
    },
    {
      'id': '10',
      'caption': questionCaption,
      'img_src': '',
      'imgWidth': 750,'imgHeight': 200,
      'layout': { 'cols': '1','img': 'left'},
      'answers': [
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0}
      ]
    },
    {
      'id': '11',
      'caption': questionCaption,
      'img_src': '',
      'imgWidth': 750,'imgHeight': 200,
      'layout': { 'cols': '1','img': 'left'},
      'answers': [
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0}
      ]
    },
    {
      'id': '12',
      'caption': questionCaption,
      'img_src': '',
      'imgWidth': 750,'imgHeight': 200,
      'layout': { 'cols': '1','img': 'left'},
      'answers': [
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0},
        {'caption': 'A','results': 0}
      ]
    },
  ],
  'tpl': 'default'
};
})();
